#ifndef GameWorld_h__
#define GameWorld_h__

#include "Common/CommonTypes.h"

class CBaseCamera;

class GameModule
{
public:
	GameModule(){}
	virtual ~GameModule(){}
	virtual void Init()   = 0;
	virtual void UnInit() = 0;
	virtual void Update(float fTime) = 0;
};

class CGameWorld
{
public:
	CGameWorld();
	~CGameWorld();

	void Init();
	void UnInit();

	void Update(float fTime);

	CBaseCamera*              GetCamera()       { return m_pCamera;   }
private:
	std::vector<GameModule*>  m_vecModules;

	CBaseCamera*              m_pCamera;
};
#endif // GameWorld_h__
